{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "T1 = time.process_time()\n",
    "\n",
    "import pandas as pd\n",
    "\n",
    "import numpy as np\n",
    "my_seed = 2017\n",
    "np.random.seed(my_seed)\n",
    "\n",
    "import random \n",
    "random.seed(my_seed)\n",
    "\n",
    "import tensorflow as tf\n",
    "tf.random.set_seed(my_seed)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "ename": "ImportError",
     "evalue": "Pandas requires version '3.0.3' or newer of 'openpyxl' (version '2.4.10' currently installed).",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mImportError\u001b[0m                               Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[2], line 3\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[38;5;66;03m#导入数据测试\u001b[39;00m\n\u001b[0;32m      2\u001b[0m df2\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m45.xlsx\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m----> 3\u001b[0m data2\u001b[38;5;241m=\u001b[39m\u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_excel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf2\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m      4\u001b[0m data2\u001b[38;5;241m.\u001b[39mhead(\u001b[38;5;241m4\u001b[39m)\n",
      "File \u001b[1;32mE:\\Python\\lib\\site-packages\\pandas\\util\\_decorators.py:311\u001b[0m, in \u001b[0;36mdeprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m    305\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(args) \u001b[38;5;241m>\u001b[39m num_allow_args:\n\u001b[0;32m    306\u001b[0m     warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[0;32m    307\u001b[0m         msg\u001b[38;5;241m.\u001b[39mformat(arguments\u001b[38;5;241m=\u001b[39marguments),\n\u001b[0;32m    308\u001b[0m         \u001b[38;5;167;01mFutureWarning\u001b[39;00m,\n\u001b[0;32m    309\u001b[0m         stacklevel\u001b[38;5;241m=\u001b[39mstacklevel,\n\u001b[0;32m    310\u001b[0m     )\n\u001b[1;32m--> 311\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n",
      "File \u001b[1;32mE:\\Python\\lib\\site-packages\\pandas\\io\\excel\\_base.py:457\u001b[0m, in \u001b[0;36mread_excel\u001b[1;34m(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, thousands, decimal, comment, skipfooter, convert_float, mangle_dupe_cols, storage_options)\u001b[0m\n\u001b[0;32m    455\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(io, ExcelFile):\n\u001b[0;32m    456\u001b[0m     should_close \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 457\u001b[0m     io \u001b[38;5;241m=\u001b[39m \u001b[43mExcelFile\u001b[49m\u001b[43m(\u001b[49m\u001b[43mio\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstorage_options\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m    458\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m engine \u001b[38;5;129;01mand\u001b[39;00m engine \u001b[38;5;241m!=\u001b[39m io\u001b[38;5;241m.\u001b[39mengine:\n\u001b[0;32m    459\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[0;32m    460\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEngine should not be specified when passing \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m    461\u001b[0m         \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124man ExcelFile - ExcelFile already has the engine set\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m    462\u001b[0m     )\n",
      "File \u001b[1;32mE:\\Python\\lib\\site-packages\\pandas\\io\\excel\\_base.py:1419\u001b[0m, in \u001b[0;36mExcelFile.__init__\u001b[1;34m(self, path_or_buffer, engine, storage_options)\u001b[0m\n\u001b[0;32m   1416\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mengine \u001b[38;5;241m=\u001b[39m engine\n\u001b[0;32m   1417\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstorage_options \u001b[38;5;241m=\u001b[39m storage_options\n\u001b[1;32m-> 1419\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reader \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engines\u001b[49m\u001b[43m[\u001b[49m\u001b[43mengine\u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_io\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstorage_options\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[1;32mE:\\Python\\lib\\site-packages\\pandas\\io\\excel\\_openpyxl.py:524\u001b[0m, in \u001b[0;36mOpenpyxlReader.__init__\u001b[1;34m(self, filepath_or_buffer, storage_options)\u001b[0m\n\u001b[0;32m    509\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\n\u001b[0;32m    510\u001b[0m     \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m    511\u001b[0m     filepath_or_buffer: FilePath \u001b[38;5;241m|\u001b[39m ReadBuffer[\u001b[38;5;28mbytes\u001b[39m],\n\u001b[0;32m    512\u001b[0m     storage_options: StorageOptions \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m    513\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m    514\u001b[0m     \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m    515\u001b[0m \u001b[38;5;124;03m    Reader using openpyxl engine.\u001b[39;00m\n\u001b[0;32m    516\u001b[0m \n\u001b[1;32m   (...)\u001b[0m\n\u001b[0;32m    522\u001b[0m \u001b[38;5;124;03m        passed to fsspec for appropriate URLs (see ``_get_filepath_or_buffer``)\u001b[39;00m\n\u001b[0;32m    523\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[1;32m--> 524\u001b[0m     \u001b[43mimport_optional_dependency\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mopenpyxl\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m    525\u001b[0m     \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(filepath_or_buffer, storage_options\u001b[38;5;241m=\u001b[39mstorage_options)\n",
      "File \u001b[1;32mE:\\Python\\lib\\site-packages\\pandas\\compat\\_optional.py:152\u001b[0m, in \u001b[0;36mimport_optional_dependency\u001b[1;34m(name, extra, errors, min_version)\u001b[0m\n\u001b[0;32m    150\u001b[0m             \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m    151\u001b[0m         \u001b[38;5;28;01melif\u001b[39;00m errors \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraise\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m--> 152\u001b[0m             \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mImportError\u001b[39;00m(msg)\n\u001b[0;32m    154\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m module\n",
      "\u001b[1;31mImportError\u001b[0m: Pandas requires version '3.0.3' or newer of 'openpyxl' (version '2.4.10' currently installed)."
     ]
    }
   ],
   "source": [
    "#导入数据测试\n",
    "df2='45.xlsx'\n",
    "data2=pd.read_excel(df2)\n",
    "data2.head(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 创建一个Series对象\n",
    "s = data2[\"throughput\"]\n",
    "#s = data2[\"jitter\"]\n",
    "# 将Series转换为ndarray\n",
    "arr = s.to_numpy()\n",
    "# 输出数组\n",
    "print(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 318,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 318,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 319,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "matplotlib.rcParams['font.family'] = 'SimHei'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 320,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 320,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#all_data = np.fromfile(\"ec_data\")\n",
    "all_data=arr\n",
    "type(all_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 321,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import MinMaxScaler\n",
    "stand_scaler = MinMaxScaler()\n",
    "all_data = stand_scaler.fit_transform(all_data.reshape(-1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 322,
   "metadata": {},
   "outputs": [],
   "source": [
    "#sequence_len = 10 #原来的\n",
    "sequence_len = 5 #最适合\n",
    "X = []\n",
    "Y = []\n",
    "for i in range(len(all_data)-sequence_len):\n",
    "    X.append(all_data[i:i+sequence_len])\n",
    "    Y.append(all_data[i+sequence_len])\n",
    "X = np.array(X)\n",
    "Y = np.array(Y)\n",
    "#这段代码的作用是将一个给定时间序列数据 `all_data` 按照指定的时间步长 `sequence_len` 进行滑窗切分，切分出一系列的样本数据，以便之后输入模型进行训练或预测。\n",
    "#具体来说，假设原始的时间序列数据为 $[x_1, x_2, ..., x_n]$，那么代码首先定义了两个空列表 `X` 和 `Y`，然后在一个 for 循环中对原始数据进行了以下处理：\n",
    "#1. 对于每个下标 `i`，从原始数据中切分出长度为 `sequence_len` 的子序列 `all_data[i:i+sequence_len]`，并将该子序列添加到 `X` 列表中；\n",
    "#2. 将切分后的子序列的下一个元素 `all_data[i+sequence_len]` 添加到 `Y` 列表中。\n",
    "#最终，`X` 和 `Y` 数组将分别包含所有通过滑窗切分得到的样本数据和对应的标签数据。其中，`X` 的形状为 `(n-sequence_len, sequence_len)`，\n",
    "#表示共有 `n-sequence_len` 个样本，每个样本有 `sequence_len` 个特征值；而 `Y` 的形状为 `(n-sequence_len,)`，表示每个样本对应一个标签（即下一个时间步的特征值）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 323,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.05)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 333,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow import keras\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 334,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.models import Sequential\n",
    "from keras.layers import Dense,LSTM\n",
    "\n",
    "\n",
    "def build_model(activation_name,):\n",
    "    model = Sequential()\n",
    "    #model.add(LSTM(128, input_shape=(sequence_len,1),return_sequences=True))  #原来的\n",
    "    #model.add(LSTM(128, input_shape=(sequence_len,1),return_sequences=True))\n",
    "    #model.add(LSTM(64))\n",
    "   # model.add(Dense(1,activation=activation_name))\n",
    "    #optimizer =tf.optimizers.Adam(learning_rate=0.1) #原来的\n",
    "    optimizer =tf.optimizers.Adam(learning_rate=0.05)\n",
    "    #model.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['mape'])\n",
    "    #model.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['mape'])\n",
    "    \n",
    "    model.add(keras.layers.LSTM(units=32, input_shape=(None, 1)))\n",
    "    model.add(keras.layers.Dense(units=1))\n",
    "    model.compile(optimizer='adam', loss='mean_squared_error')\n",
    "    return model\n",
    "\n",
    "\n",
    "#这些代码是用来构建一个神经网络模型，主要应用于时间序列数据的预测。具体作用如下：\n",
    "#导入Keras库中的Sequential顺序模型和LSTM层\n",
    "#定义了一个函数build_model，用于构建神经网络模型\n",
    "#在模型中添加了两个LSTM层，分别为含有128个节点的输入层和含有64个节点的输出层\n",
    "#向模型添加了一个具有1个节点的稠密层(Dense)，并指定激活函数为用户提供的activation_name参数（实现可配置）\n",
    "#定义了优化器Adam，并设置学习率为0.1\n",
    "#编译了模型，指定损失函数为均方差误差（mean_squared_error），优化器为Adam，并使用平均绝对百分比误差（mean absolute percentage error）进行模型评估\n",
    "#返回构建好的模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 335,
   "metadata": {},
   "outputs": [],
   "source": [
    "lstm = build_model(\"sigmoid\")\n",
    "step = 250"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 336,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1167, 5, 1)"
      ]
     },
     "execution_count": 336,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 337,
   "metadata": {},
   "outputs": [],
   "source": [
    "#history = lstm.fit(\n",
    "#    X_train, Y_train, epochs=50, batch_size = 32,verbose=0,validation_data = (X_test, Y_test)\n",
    "#    )\n",
    "history = lstm.fit(\n",
    "    X_train, Y_train, epochs=50, batch_size = 32,verbose=0,validation_data = (X_test, Y_test)\n",
    "    )\n",
    "\n",
    "#epochs (轮数): 整个训练集数据将被用来训练神经网络50次。\n",
    "#batch_size (批处理大小)：每个训练批次包含的样本数量为32。\n",
    "#verbose (冗长模式): 设置为0以关闭详细输出。\n",
    "#validation_data (验证数据): 将测试集作为验证数据传入，以了解模型的表现情况。\n",
    "#总体来说，lstm.fit()方法会根据提供的训练数据和超参数对模型进行训练，\n",
    "#并且返回一个 history 对象，其中包含一些有关模型表现的统计信息（例如每轮结束后的训练和验证损失、准确度等）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 338,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2/2 [==============================] - 0s 2ms/step\n"
     ]
    }
   ],
   "source": [
    "Y_predict = lstm.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 339,
   "metadata": {},
   "outputs": [],
   "source": [
    "Y_predict_real = stand_scaler.inverse_transform(Y_predict.reshape(-1,1))\n",
    "Y_test_real = stand_scaler.inverse_transform(Y_test.reshape(-1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 340,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x211f35812e0>]"
      ]
     },
     "execution_count": 340,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(20, 2))\n",
    "plt.plot(Y_predict_real/(1024*1024))\n",
    "plt.plot(Y_test_real/(1024*1024))\n",
    "#其中figsize参数用于设置图形窗口的大小。\n",
    "#对于Y_predict_real和Y_test_real进行归一化处理，将返回的结果转换为单位为MB（兆字节），即除以1024*1024"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 341,
   "metadata": {
    "pycharm": {
     "name": "#%%\n"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "根均方误差(RMSE)：0.09331431476372547\n",
      "平均绝对百分比误差(MAPE)：0.32939826667757505\n"
     ]
    }
   ],
   "source": [
    "def MAPE(true, pred):\n",
    "    diff = np.abs(np.array(true) - np.array(pred))\n",
    "    return np.mean(diff / true)\n",
    "def RMSE(predictions, targets):\n",
    "    return np.sqrt(((predictions - targets) ** 2).mean())\n",
    "\n",
    "print(f\"根均方误差(RMSE)：{RMSE(Y_predict_real/(1024*1024), Y_test_real/(1024*1024))}\")\n",
    "print(f\"平均绝对百分比误差(MAPE)：{MAPE(Y_predict, Y_test)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 342,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "程序运行时间:15421.875毫秒\n"
     ]
    }
   ],
   "source": [
    "T2 =time.process_time()\n",
    "print('程序运行时间:%s毫秒' % ((T2 - T1)*1000))\n",
    "# 系统: Windows\n",
    "# 程序运行时间:-毫秒"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
